package com.ruoyi.gd.ywdwgd.service;

import cn.hutool.json.JSONObject;
import com.ruoyi.gd.fj.domain.bo.ZFujianBo;
import com.ruoyi.gd.ywdwgd.domain.vo.ZYwdwgdKfpVo;
import com.ruoyi.gd.ywdwgd.domain.vo.ZYwdwgdVo;
import com.ruoyi.gd.ywdwgd.domain.bo.ZYwdwgdBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.List;

/**
 * 业务完工单Service接口
 *
 * @author ruoyi
 * @date 2024-08-01
 */
public interface IZYwdwgdService {

    /**
     * 查询业务完工单
     */
    ZYwdwgdVo queryById(String id);

    /**
     * 查询业务完工单列表
     */
    TableDataInfo<ZYwdwgdVo> queryPageList(ZYwdwgdBo bo, PageQuery pageQuery);

    /**
     * 查询业务完工单列表
     */
    List<ZYwdwgdVo> queryList(ZYwdwgdBo bo);

    /**
     * 新增业务完工单
     */
    Boolean insertByBo(ZYwdwgdBo bo);

    /**
     * 修改业务完工单
     */
    Boolean updateByBo(ZYwdwgdBo bo);

    /**
     * 校验并批量删除业务完工单信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    void resetDatabase();

    List<ZYwdwgdVo> queryListByIds(String ids);

    List<ZYwdwgdVo> queryAllList(ZYwdwgdBo bo);

    int handleZt(String id, String type);

    boolean verifyBh(String bh);

    ZFujianBo genBjd(ZYwdwgdBo bo);

    byte[] genBjdData(ZFujianBo bo);

    int batchUpdateByWgbh(List<ZYwdwgdBo> zywdwgdList);

    Boolean batchUpdateZt(ZYwdwgdBo bo);

    byte[] genDzd(String ids, String type);

    byte[] genDzdNew(String ids, String type);

    List<ZFujianBo> szWgdToTjWgd(String tjFjId, String wgrq);

    List<ZFujianBo> clearBjd(String fjId);

    int updateShByKhId(String id, String sh);

    byte[] handleKfp(List<ZYwdwgdKfpVo> list);
}
